[IA64] Switch to CONFIG_IA64_GENERIC config and wire in Xen machine vector
authorAlex Williamson <alex.williamson@hp.com>
Mon, 7 May 2007 14:54:56 +0000 (08:54 -0600)
committerAlex Williamson <alex.williamson@hp.com>
Mon, 7 May 2007 14:54:56 +0000 (08:54 -0600)
This enables the switch to the generic flavor ia64 kernel for the -xen
and -xen0 kernels.  -xenU is changed to a CONFIG_IA64_XEN build.

Signed-off-by: Alex Williamson <alex.williamson@hp.com>
buildconfigs/linux-defconfig_xen0_ia64
buildconfigs/linux-defconfig_xenU_ia64
buildconfigs/linux-defconfig_xen_ia64
linux-2.6-xen-sparse/arch/ia64/xen/Makefile
linux-2.6-xen-sparse/include/asm-ia64/dma-mapping.h
linux-2.6-xen-sparse/include/asm-ia64/machvec_dig.h
linux-2.6-xen-sparse/lib/Makefile

index ae4281e94ccab3b62406cba6213b970dce32703d..9e7292d3018926891a847348cf26b010eb6d0d26 100644 (file)
@@ -1,8 +1,9 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.18-xen0
-# Mon Jan 29 10:16:18 2007
+# Linux kernel version: 2.6.18
+# Sun May  6 20:45:43 2007
 #
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 
 #
 # Code maturity level options
@@ -99,12 +100,13 @@ CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y
 CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
 CONFIG_DMA_IS_DMA32=y
 CONFIG_AUDIT_ARCH=y
-# CONFIG_IA64_GENERIC is not set
-CONFIG_IA64_DIG=y
+CONFIG_IA64_GENERIC=y
+# CONFIG_IA64_DIG is not set
 # CONFIG_IA64_HP_ZX1 is not set
 # CONFIG_IA64_HP_ZX1_SWIOTLB is not set
 # CONFIG_IA64_SGI_SN2 is not set
 # CONFIG_IA64_HP_SIM is not set
+# CONFIG_IA64_XEN is not set
 # CONFIG_ITANIUM is not set
 CONFIG_MCKINLEY=y
 # CONFIG_IA64_PAGE_SIZE_4KB is not set
@@ -120,6 +122,7 @@ CONFIG_HZ=100
 CONFIG_IA64_L1_CACHE_SHIFT=7
 CONFIG_IA64_CYCLONE=y
 CONFIG_IOSAPIC=y
+# CONFIG_IA64_SGI_SN_XP is not set
 CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_SMP=y
 CONFIG_NR_CPUS=16
@@ -129,23 +132,37 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 # CONFIG_PERMIT_BSP_REMOVE is not set
 # CONFIG_PREEMPT is not set
 CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
 # CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
+CONFIG_DISCONTIGMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_NEED_MULTIPLE_NODES=y
 # CONFIG_SPARSEMEM_STATIC is not set
 CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_MIGRATION is not set
 CONFIG_RESOURCES_64BIT=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
 CONFIG_ARCH_FLATMEM_ENABLE=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
-# CONFIG_VIRTUAL_MEM_MAP is not set
+CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=10
+CONFIG_VIRTUAL_MEM_MAP=y
+CONFIG_HOLES_IN_ZONE=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y
 # CONFIG_IA32_SUPPORT is not set
-CONFIG_IA64_MCA_RECOVERY=y
+# CONFIG_IA64_MCA_RECOVERY is not set
 CONFIG_PERFMON=y
 CONFIG_IA64_PALINFO=y
+CONFIG_SGI_SN=y
+
+#
+# SN Devices
+#
+# CONFIG_SGI_IOC3 is not set
 
 #
 # Firmware Drivers
@@ -172,6 +189,7 @@ CONFIG_ACPI_FAN=y
 CONFIG_ACPI_PROCESSOR=y
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_NUMA=y
 CONFIG_ACPI_BLACKLIST_YEAR=0
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_EC=y
@@ -203,6 +221,7 @@ CONFIG_HOTPLUG_PCI_ACPI=y
 # CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
 # CONFIG_HOTPLUG_PCI_CPCI is not set
 # CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SGI is not set
 
 #
 # PCCARD (PCMCIA/CardBus) support
@@ -747,6 +766,8 @@ CONFIG_SERIAL_NONSTANDARD=y
 # CONFIG_SX is not set
 # CONFIG_RIO is not set
 # CONFIG_STALDRV is not set
+# CONFIG_SGI_SNSC is not set
+# CONFIG_SGI_TIOCX is not set
 
 #
 # Serial drivers
@@ -755,6 +776,7 @@ CONFIG_SERIAL_NONSTANDARD=y
 #
 # Non-8250 serial port support
 #
+# CONFIG_SERIAL_SGI_L1_CONSOLE is not set
 # CONFIG_SERIAL_JSM is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
@@ -782,6 +804,8 @@ CONFIG_AGP=y
 # CONFIG_AGP_SIS is not set
 # CONFIG_AGP_VIA is not set
 CONFIG_AGP_I460=y
+# CONFIG_AGP_HP_ZX1 is not set
+# CONFIG_AGP_SGI_TIOCA is not set
 CONFIG_DRM=y
 # CONFIG_DRM_TDFX is not set
 # CONFIG_DRM_R128 is not set
@@ -793,6 +817,7 @@ CONFIG_DRM=y
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_HPET is not set
 # CONFIG_HANGCHECK_TIMER is not set
+# CONFIG_MMTIMER is not set
 
 #
 # TPM devices
@@ -1540,6 +1565,13 @@ CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_PENDING_IRQ=y
 CONFIG_IRQ_PER_CPU=y
 
+#
+# HP Simulator drivers
+#
+# CONFIG_HP_SIMETH is not set
+# CONFIG_HP_SIMSERIAL is not set
+# CONFIG_HP_SIMSCSI is not set
+
 #
 # Instrumentation Support
 #
@@ -1615,9 +1647,6 @@ CONFIG_CRYPTO_DES=y
 #
 # Hardware crypto devices
 #
-# CONFIG_XEN_UTIL is not set
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_REBOOT=y
 # CONFIG_XEN_SMPBOOT is not set
 CONFIG_XEN_INTERFACE_VERSION=0x00030205
 
@@ -1642,15 +1671,14 @@ CONFIG_XEN_PCIDEV_BACKEND_SLOT=y
 CONFIG_XEN_TPMDEV_BACKEND=m
 CONFIG_XEN_BLKDEV_FRONTEND=y
 CONFIG_XEN_NETDEV_FRONTEND=y
-# CONFIG_XEN_FRAMEBUFFER is not set
+CONFIG_XEN_FRAMEBUFFER=y
+CONFIG_XEN_KEYBOARD=y
 # CONFIG_XEN_SCRUB_PAGES is not set
 CONFIG_XEN_DISABLE_SERIAL=y
 CONFIG_XEN_SYSFS=y
 CONFIG_XEN_COMPAT_030002_AND_LATER=y
 # CONFIG_XEN_COMPAT_030004_AND_LATER is not set
 # CONFIG_XEN_COMPAT_LATEST_ONLY is not set
-CONFIG_XEN_COMPAT_030002=y
-CONFIG_XEN_COMPAT_030004=y
+CONFIG_XEN_COMPAT=0x030002
 CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
 CONFIG_NO_IDLE_HZ=y
-CONFIG_XEN_DEVMEM=y
index 7ef2d7ac849da3b6b1b11e3295ecc06ccd83de1c..0eceb09b012a37325e42ee8ab7eb9ce94caccef0 100644 (file)
@@ -1,8 +1,9 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.18-xenU
-# Mon Jan 29 10:26:51 2007
+# Linux kernel version: 2.6.18
+# Sun May  6 22:07:34 2007
 #
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 
 #
 # Code maturity level options
@@ -56,6 +57,7 @@ CONFIG_MODULES=y
 # CONFIG_MODVERSIONS is not set
 # CONFIG_MODULE_SRCVERSION_ALL is not set
 # CONFIG_KMOD is not set
+CONFIG_STOP_MACHINE=y
 
 #
 # Block layer
@@ -97,11 +99,12 @@ CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
 CONFIG_DMA_IS_DMA32=y
 CONFIG_AUDIT_ARCH=y
 # CONFIG_IA64_GENERIC is not set
-CONFIG_IA64_DIG=y
+# CONFIG_IA64_DIG is not set
 # CONFIG_IA64_HP_ZX1 is not set
 # CONFIG_IA64_HP_ZX1_SWIOTLB is not set
 # CONFIG_IA64_SGI_SN2 is not set
 # CONFIG_IA64_HP_SIM is not set
+CONFIG_IA64_XEN=y
 # CONFIG_ITANIUM is not set
 CONFIG_MCKINLEY=y
 # CONFIG_IA64_PAGE_SIZE_4KB is not set
@@ -175,7 +178,7 @@ CONFIG_ACPI_BLACKLIST_YEAR=0
 CONFIG_ACPI_EC=y
 CONFIG_ACPI_POWER=y
 CONFIG_ACPI_SYSTEM=y
-# CONFIG_ACPI_CONTAINER is not set
+CONFIG_ACPI_CONTAINER=y
 
 #
 # CPU Frequency scaling
@@ -673,7 +676,6 @@ CONFIG_EFI_RTC=y
 CONFIG_AGP=y
 # CONFIG_AGP_SIS is not set
 # CONFIG_AGP_VIA is not set
-# CONFIG_AGP_I460 is not set
 CONFIG_DRM=y
 # CONFIG_DRM_TDFX is not set
 # CONFIG_DRM_R128 is not set
@@ -1467,9 +1469,6 @@ CONFIG_CRYPTO_DES=y
 #
 # Hardware crypto devices
 #
-# CONFIG_XEN_UTIL is not set
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_REBOOT=y
 # CONFIG_XEN_SMPBOOT is not set
 CONFIG_XEN_INTERFACE_VERSION=0x00030205
 
@@ -1491,8 +1490,6 @@ CONFIG_XEN_SYSFS=y
 CONFIG_XEN_COMPAT_030002_AND_LATER=y
 # CONFIG_XEN_COMPAT_030004_AND_LATER is not set
 # CONFIG_XEN_COMPAT_LATEST_ONLY is not set
-CONFIG_XEN_COMPAT_030002=y
-CONFIG_XEN_COMPAT_030004=y
+CONFIG_XEN_COMPAT=0x030002
 CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
 CONFIG_NO_IDLE_HZ=y
-CONFIG_XEN_DEVMEM=y
index 58d97492effc6fe810d57f808134de99f3f9ed20..9e7292d3018926891a847348cf26b010eb6d0d26 100644 (file)
@@ -1,8 +1,9 @@
 #
 # Automatically generated make config: don't edit
-# Linux kernel version: 2.6.18-xen
-# Mon Jan 29 10:01:13 2007
+# Linux kernel version: 2.6.18
+# Sun May  6 20:45:43 2007
 #
+CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
 
 #
 # Code maturity level options
@@ -99,12 +100,13 @@ CONFIG_XEN_IA64_EXPOSE_P2M_USE_DTR=y
 CONFIG_SCHED_NO_NO_OMIT_FRAME_POINTER=y
 CONFIG_DMA_IS_DMA32=y
 CONFIG_AUDIT_ARCH=y
-# CONFIG_IA64_GENERIC is not set
-CONFIG_IA64_DIG=y
+CONFIG_IA64_GENERIC=y
+# CONFIG_IA64_DIG is not set
 # CONFIG_IA64_HP_ZX1 is not set
 # CONFIG_IA64_HP_ZX1_SWIOTLB is not set
 # CONFIG_IA64_SGI_SN2 is not set
 # CONFIG_IA64_HP_SIM is not set
+# CONFIG_IA64_XEN is not set
 # CONFIG_ITANIUM is not set
 CONFIG_MCKINLEY=y
 # CONFIG_IA64_PAGE_SIZE_4KB is not set
@@ -120,6 +122,7 @@ CONFIG_HZ=100
 CONFIG_IA64_L1_CACHE_SHIFT=7
 CONFIG_IA64_CYCLONE=y
 CONFIG_IOSAPIC=y
+# CONFIG_IA64_SGI_SN_XP is not set
 CONFIG_FORCE_MAX_ZONEORDER=11
 CONFIG_SMP=y
 CONFIG_NR_CPUS=16
@@ -129,23 +132,37 @@ CONFIG_ARCH_ENABLE_MEMORY_HOTPLUG=y
 # CONFIG_PERMIT_BSP_REMOVE is not set
 # CONFIG_PREEMPT is not set
 CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-# CONFIG_DISCONTIGMEM_MANUAL is not set
+# CONFIG_FLATMEM_MANUAL is not set
+CONFIG_DISCONTIGMEM_MANUAL=y
 # CONFIG_SPARSEMEM_MANUAL is not set
-CONFIG_FLATMEM=y
+CONFIG_DISCONTIGMEM=y
 CONFIG_FLAT_NODE_MEM_MAP=y
+CONFIG_NEED_MULTIPLE_NODES=y
 # CONFIG_SPARSEMEM_STATIC is not set
 CONFIG_SPLIT_PTLOCK_CPUS=4
+# CONFIG_MIGRATION is not set
 CONFIG_RESOURCES_64BIT=y
 CONFIG_ARCH_SELECT_MEMORY_MODEL=y
 CONFIG_ARCH_DISCONTIGMEM_ENABLE=y
 CONFIG_ARCH_FLATMEM_ENABLE=y
 CONFIG_ARCH_SPARSEMEM_ENABLE=y
-# CONFIG_VIRTUAL_MEM_MAP is not set
+CONFIG_ARCH_DISCONTIGMEM_DEFAULT=y
+CONFIG_NUMA=y
+CONFIG_NODES_SHIFT=10
+CONFIG_VIRTUAL_MEM_MAP=y
+CONFIG_HOLES_IN_ZONE=y
+CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID=y
+CONFIG_HAVE_ARCH_NODEDATA_EXTENSION=y
 # CONFIG_IA32_SUPPORT is not set
-CONFIG_IA64_MCA_RECOVERY=y
+# CONFIG_IA64_MCA_RECOVERY is not set
 CONFIG_PERFMON=y
 CONFIG_IA64_PALINFO=y
+CONFIG_SGI_SN=y
+
+#
+# SN Devices
+#
+# CONFIG_SGI_IOC3 is not set
 
 #
 # Firmware Drivers
@@ -172,6 +189,7 @@ CONFIG_ACPI_FAN=y
 CONFIG_ACPI_PROCESSOR=y
 CONFIG_ACPI_HOTPLUG_CPU=y
 CONFIG_ACPI_THERMAL=y
+CONFIG_ACPI_NUMA=y
 CONFIG_ACPI_BLACKLIST_YEAR=0
 # CONFIG_ACPI_DEBUG is not set
 CONFIG_ACPI_EC=y
@@ -203,6 +221,7 @@ CONFIG_HOTPLUG_PCI_ACPI=y
 # CONFIG_HOTPLUG_PCI_ACPI_IBM is not set
 # CONFIG_HOTPLUG_PCI_CPCI is not set
 # CONFIG_HOTPLUG_PCI_SHPC is not set
+# CONFIG_HOTPLUG_PCI_SGI is not set
 
 #
 # PCCARD (PCMCIA/CardBus) support
@@ -747,6 +766,8 @@ CONFIG_SERIAL_NONSTANDARD=y
 # CONFIG_SX is not set
 # CONFIG_RIO is not set
 # CONFIG_STALDRV is not set
+# CONFIG_SGI_SNSC is not set
+# CONFIG_SGI_TIOCX is not set
 
 #
 # Serial drivers
@@ -755,6 +776,7 @@ CONFIG_SERIAL_NONSTANDARD=y
 #
 # Non-8250 serial port support
 #
+# CONFIG_SERIAL_SGI_L1_CONSOLE is not set
 # CONFIG_SERIAL_JSM is not set
 CONFIG_UNIX98_PTYS=y
 CONFIG_LEGACY_PTYS=y
@@ -782,6 +804,8 @@ CONFIG_AGP=y
 # CONFIG_AGP_SIS is not set
 # CONFIG_AGP_VIA is not set
 CONFIG_AGP_I460=y
+# CONFIG_AGP_HP_ZX1 is not set
+# CONFIG_AGP_SGI_TIOCA is not set
 CONFIG_DRM=y
 # CONFIG_DRM_TDFX is not set
 # CONFIG_DRM_R128 is not set
@@ -793,6 +817,7 @@ CONFIG_DRM=y
 # CONFIG_RAW_DRIVER is not set
 # CONFIG_HPET is not set
 # CONFIG_HANGCHECK_TIMER is not set
+# CONFIG_MMTIMER is not set
 
 #
 # TPM devices
@@ -1540,6 +1565,13 @@ CONFIG_GENERIC_IRQ_PROBE=y
 CONFIG_GENERIC_PENDING_IRQ=y
 CONFIG_IRQ_PER_CPU=y
 
+#
+# HP Simulator drivers
+#
+# CONFIG_HP_SIMETH is not set
+# CONFIG_HP_SIMSERIAL is not set
+# CONFIG_HP_SIMSCSI is not set
+
 #
 # Instrumentation Support
 #
@@ -1615,9 +1647,6 @@ CONFIG_CRYPTO_DES=y
 #
 # Hardware crypto devices
 #
-# CONFIG_XEN_UTIL is not set
-CONFIG_XEN_BALLOON=y
-CONFIG_XEN_REBOOT=y
 # CONFIG_XEN_SMPBOOT is not set
 CONFIG_XEN_INTERFACE_VERSION=0x00030205
 
@@ -1650,8 +1679,6 @@ CONFIG_XEN_SYSFS=y
 CONFIG_XEN_COMPAT_030002_AND_LATER=y
 # CONFIG_XEN_COMPAT_030004_AND_LATER is not set
 # CONFIG_XEN_COMPAT_LATEST_ONLY is not set
-CONFIG_XEN_COMPAT_030002=y
-CONFIG_XEN_COMPAT_030004=y
+CONFIG_XEN_COMPAT=0x030002
 CONFIG_HAVE_IRQ_IGNORE_UNHANDLED=y
 CONFIG_NO_IDLE_HZ=y
-CONFIG_XEN_DEVMEM=y
index 6bd31af0998fa3fb8ae8eeb4371dce692ce487e6..6d19da28df57f3bd62907c4500706d801220a059 100644 (file)
@@ -3,7 +3,7 @@
 #
 
 obj-y := hypercall.o xenivt.o xenentry.o xensetup.o xenpal.o xenhpski.o \
-        hypervisor.o pci-dma-xen.o util.o xencomm.o xcom_hcall.o \
-        xcom_mini.o xcom_privcmd.o mem.o
+        hypervisor.o util.o xencomm.o xcom_hcall.o xcom_mini.o \
+        xcom_privcmd.o mem.o xen_dma.o
 
-pci-dma-xen-y := ../../i386/kernel/pci-dma-xen.o
+obj-$(CONFIG_IA64_GENERIC) += machvec.o
index b58ed3a4736330f167357f38abca9399676734f1..509110f34fae187f53d6a3aed06b2b4c14410347 100644 (file)
@@ -13,7 +13,6 @@
 #include <asm/swiotlb.h>
 #endif
 
-#ifndef CONFIG_XEN
 #define dma_alloc_coherent     platform_dma_alloc_coherent
 #define dma_alloc_noncoherent  platform_dma_alloc_coherent     /* coherent mem. is cheap */
 #define dma_free_coherent      platform_dma_free_coherent
 #define dma_sync_single_for_device platform_dma_sync_single_for_device
 #define dma_sync_sg_for_device platform_dma_sync_sg_for_device
 #define dma_mapping_error      platform_dma_mapping_error
-#else
-int dma_map_sg(struct device *hwdev, struct scatterlist *sg, int nents,
-               enum dma_data_direction direction);
-void dma_unmap_sg(struct device *hwdev, struct scatterlist *sg, int nents,
-                  enum dma_data_direction direction);
-int dma_supported(struct device *dev, u64 mask);
-void *dma_alloc_coherent(struct device *dev, size_t size,
-                         dma_addr_t *dma_handle, gfp_t gfp);
-void dma_free_coherent(struct device *dev, size_t size, void *vaddr,
-                       dma_addr_t dma_handle);
-dma_addr_t dma_map_single(struct device *dev, void *ptr, size_t size,
-                          enum dma_data_direction direction);
-void dma_unmap_single(struct device *dev, dma_addr_t dma_addr, size_t size,
-                      enum dma_data_direction direction);
-void dma_sync_single_for_cpu(struct device *dev, dma_addr_t dma_handle,
-                             size_t size, enum dma_data_direction direction);
-void dma_sync_single_for_device(struct device *dev, dma_addr_t dma_handle,
-                                size_t size,
-                                enum dma_data_direction direction);
-int dma_mapping_error(dma_addr_t dma_addr);
-
-#define flush_write_buffers()  do { } while (0)
-static inline void
-dma_sync_sg_for_cpu(struct device *dev, struct scatterlist *sg, int nelems,
-                    enum dma_data_direction direction)
-{
-       if (swiotlb)
-               swiotlb_sync_sg_for_cpu(dev,sg,nelems,direction);
-       flush_write_buffers();
-}
-
-static inline void
-dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
-                       enum dma_data_direction direction)
-{
-       if (swiotlb)
-               swiotlb_sync_sg_for_device(dev,sg,nelems,direction);
-       flush_write_buffers();
-}
-#endif
-
 #define dma_map_page(dev, pg, off, size, dir)                          \
        dma_map_single(dev, page_address(pg) + (off), (size), (dir))
 #define dma_unmap_page(dev, dma_addr, size, dir)                       \
@@ -83,9 +41,7 @@ dma_sync_sg_for_device(struct device *dev, struct scatterlist *sg, int nelems,
 #define dma_sync_single_range_for_device(dev, dma_handle, offset, size, dir)   \
        dma_sync_single_for_device(dev, dma_handle, size, dir)
 
-#ifndef CONFIG_XEN
 #define dma_supported          platform_dma_supported
-#endif
 
 static inline int
 dma_set_mask (struct device *dev, u64 mask)
@@ -111,26 +67,19 @@ dma_cache_sync (void *vaddr, size_t size, enum dma_data_direction dir)
 #define dma_is_consistent(dma_handle)  (1)     /* all we do is coherent memory... */
 
 #ifdef CONFIG_XEN
-/* arch/i386/kernel/swiotlb.o requires */
-void contiguous_bitmap_init(unsigned long end_pfn);
-
-static inline int
-address_needs_mapping(struct device *hwdev, dma_addr_t addr)
-{
-       dma_addr_t mask = DMA_64BIT_MASK;
-       /* If the device has a mask, use it, otherwise default to 64 bits */
-       if (hwdev && hwdev->dma_mask)
-               mask = *hwdev->dma_mask;
-       return (addr & ~mask) != 0;
-}
-
 static inline int
 range_straddles_page_boundary(void *p, size_t size)
 {
        extern unsigned long *contiguous_bitmap;
+
+       if (!is_running_on_xen())
+               return 0;
+
        return (((((unsigned long)p & ~PAGE_MASK) + size) > PAGE_SIZE) &&
                !test_bit(__pa(p) >> PAGE_SHIFT, contiguous_bitmap));
 }
+#else
+#define range_straddles_page_boundary(addr, size)      (0)
 #endif
 
 #endif /* _ASM_IA64_DMA_MAPPING_H */
index ccb777e37b8714d44e134567161850979ab62960..8a0752f40987ebae6cdaf9ccb411bc133de43017 100644 (file)
@@ -13,19 +13,4 @@ extern ia64_mv_setup_t dig_setup;
 #define platform_name          "dig"
 #define platform_setup         dig_setup
 
-#ifdef CONFIG_XEN
-# define platform_dma_map_sg           dma_map_sg
-# define platform_dma_unmap_sg         dma_unmap_sg
-# define platform_dma_mapping_error    dma_mapping_error
-# define platform_dma_supported                dma_supported
-# define platform_dma_alloc_coherent   dma_alloc_coherent
-# define platform_dma_free_coherent    dma_free_coherent
-# define platform_dma_map_single       dma_map_single
-# define platform_dma_unmap_single     dma_unmap_single
-# define platform_dma_sync_single_for_cpu \
-                                       dma_sync_single_for_cpu
-# define platform_dma_sync_single_for_device \
-                                       dma_sync_single_for_device
-#endif
-
 #endif /* _ASM_IA64_MACHVEC_DIG_h */
index c779b94e7a260c46a0713f780f6cf0e5cefbab01..a0723066221f419b9795ad07b1bbcb47fc3328de 100644 (file)
@@ -52,7 +52,12 @@ obj-$(CONFIG_SMP) += percpu_counter.o
 obj-$(CONFIG_AUDIT_GENERIC) += audit.o
 
 obj-$(CONFIG_SWIOTLB) += swiotlb.o
+ifeq ($(CONFIG_X86),y)
 swiotlb-$(CONFIG_XEN) := ../arch/i386/kernel/swiotlb.o
+endif
+ifeq ($(CONFIG_IA64),y)
+swiotlb-$(CONFIG_XEN) := ../arch/ia64/xen/swiotlb.o
+endif
 
 hostprogs-y    := gen_crc32table
 clean-files    := crc32table.h